/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Dao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import model.entity.Proprietario;

/**
 *
 * @author helton
 */
public class ProprietarioDao extends Conexao {

      public static Proprietario insert(Proprietario proprietario) {
            try {
                  PreparedStatement pstmt = getConnection().prepareStatement(
                          "Insert Into proprietario (cpf,nome,endereco,bairro,data_nasc,fone,email,cidade,cep) "
                          + "Values(?,?,?,?,?,?,?,?,?)");
                  pstmt.setObject(1, proprietario.getCpf());
                  pstmt.setObject(2, proprietario.getNome());
                  pstmt.setObject(3, proprietario.getEndereco());
                  pstmt.setObject(4, proprietario.getBairro());
                  pstmt.setObject(5, proprietario.getDataDeNascimento());
                  pstmt.setObject(6, proprietario.getFone());
                  pstmt.setObject(7, proprietario.getEmail());
                  pstmt.setObject(8, proprietario.getCidade());
                  pstmt.setObject(9, proprietario.getCep());
                  pstmt.executeUpdate();
                  //
                  pstmt.close();
            } catch (Exception e) {
                 System.out.println("Erro no metodo insert da Classe ProprietarioDao "+e);
            }
            return proprietario;
      }

      public static Proprietario update(Proprietario proprietario) {
            try {
                  PreparedStatement pstmt = getConnection().prepareStatement(
                          "Update proprietario Set nome = ?, endereco = ?, "
                          +"bairro = ?,cep = ?,data_nasc = ?,fone = ?,email = ?,"
                          + "cidade = ? Where cpf = ?");
                  pstmt.setObject(1, proprietario.getNome());
                  pstmt.setObject(2, proprietario.getEndereco());
                  pstmt.setObject(3, proprietario.getBairro());
                  pstmt.setObject(4, proprietario.getCep());
                  pstmt.setObject(5, proprietario.getDataDeNascimento());
                  pstmt.setObject(6, proprietario.getFone());
                  pstmt.setObject(7, proprietario.getEmail());
                  pstmt.setObject(8, proprietario.getCidade());
                  pstmt.setObject(9, proprietario.getCpf());
                  pstmt.executeQuery();
                  //
                  pstmt.close();
            } catch (Exception e) {
                  System.out.println("Erro: "+e);
            }
            return proprietario;
      }

      public static boolean remove(Proprietario proprietario) {
            try {
                  PreparedStatement pstmt = getConnection().prepareStatement(
                          "Delete from proprietario Where cpf =?");
                  pstmt.setObject(1, proprietario.getCpf());
                  pstmt.executeUpdate();
                  //
                  pstmt.close();
                  return true;
            } catch (Exception e) {
                  e.printStackTrace();
                  return false;
            }
      }

      public static Proprietario find(String cpf) {
            Proprietario proprietario = null;
            try {
                  PreparedStatement pstmt = getConnection().prepareStatement(
                          "Select * from proprietario Where cpf =?");
                  pstmt.setObject(1, cpf);
                  ResultSet rs = pstmt.executeQuery();
                  if (rs.next()) {
                        proprietario = new Proprietario();
                        proprietario.setCpf(rs.getString("cpf"));
                        proprietario.setNome(rs.getString("nome"));
                        proprietario.setEndereco(rs.getString("endereco"));
                        proprietario.setBairro(rs.getString("bairro"));
                        proprietario.setCep(rs.getString("cep"));
                        proprietario.setDataDeNascimento(rs.getString("data_nasc"));
                        proprietario.setFone(rs.getString("fone"));
                        proprietario.setEmail(rs.getString("email"));
                        proprietario.setCidade(rs.getString("cidade"));
                  }
                  pstmt.executeUpdate();
                  //
                  pstmt.close();
            } catch (Exception e) {
                  System.out.println("Erro: "+e);
            }
            return proprietario;
      }

      public static List<Proprietario> getAll() {
            List<Proprietario> listProprietario = new ArrayList<Proprietario>();
            Proprietario proprietario = null;
            try {
                  PreparedStatement pstmt = getConnection().prepareStatement(
                          "Select * from proprietario");
                  ResultSet rs = pstmt.executeQuery();
                  while (rs.next()) {
                        proprietario = new Proprietario();
                        proprietario.setCpf(rs.getString("cpf"));
                        proprietario.setNome(rs.getString("nome"));
                        proprietario.setEndereco(rs.getString("endereco"));
                        proprietario.setBairro(rs.getString("bairro"));
                        proprietario.setCep(rs.getString("cep"));
                        proprietario.setDataDeNascimento(rs.getString("data_nasc"));
                        proprietario.setFone(rs.getString("fone"));
                        proprietario.setEmail(rs.getString("email"));
                        proprietario.setCidade(rs.getString("cidade"));
                        listProprietario.add(proprietario);
                  }
                  //pstmt.executeUpdate();
                  //
                  pstmt.close();
            } catch (Exception e) {
                  System.out.println("Erro: "+e);
            }
            return listProprietario;
      }
}
